package com.jblv.frame.common.es.service;

import com.jblv.frame.common.dto.PageResult;
import com.jblv.frame.common.es.base.ESBaseEntity;
import com.jblv.frame.common.es.param.SearchParam;

import java.util.List;
import java.util.Map;
import java.util.Set;

public interface IESBaseService<T extends ESBaseEntity> {
    String save(T var1);

    String save(T var1, boolean var2);

    void bulkSave(List<T> var1);

    String updateById(T var1);

    String updateById(T var1, boolean var2);

    String update(T var1);

    Boolean deleteById(String var1);

    Boolean deleteById(String var1, boolean var2);

    Integer deleteByQuery(String var1);

    T getById(String var1);

    List<T> searchAll();

    PageResult<T> search(List<String> var1, Set<SearchParam> var2, Map<String, Boolean> var3, List<String> var4, Integer var5, Integer var6);

    List<T> search(List<String> var1, Set<SearchParam> var2, Map<String, Boolean> var3, List<String> var4, Integer var5, Long var6);

    T selectOne(Map<String, Object> var1);

    PageResult<T> searchByLocation(List<String> var1, Set<SearchParam> var2, Map<String, Boolean> var3, List<String> var4, Integer var5, Integer var6, String var7, String var8);

    PageResult<T> searchByTerms(List<String> var1, Set<SearchParam> var2, Map<String, Boolean> var3, List<String> var4, Integer var5, Integer var6, Map<String, List<String>> var7);

    List<T> searchByTermsForApp(List<String> var1, Set<SearchParam> var2, Map<String, Boolean> var3, List<String> var4, Integer var5, Long var6, Map<String, List<String>> var7);
}
